package org.dromara.system.domain.bo;

import com.baomidou.mybatisplus.annotation.TableField;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import org.dromara.system.domain.SysUserWithdrawal;
import org.dromara.system.domain.common.BasePageReqDTO;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 提现记录业务对象 sys_user_withdrawal
 *
 * @author Lion Li
 * @date 2025-07-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysUserWithdrawal.class, reverseConvertGenerate = false)
public class SysUserWithdrawalBo extends BasePageReqDTO {

    /**
     *
     */
    private Long id;

    /**
     * 提现用户id
     */
    @NotNull(message = "用户ID不能为空！")
    private Long userId;

    private String no;

    private String insideNo;
    /**
     * 提现金额
     */
    @NotNull(message = "提现金额不能为空！")
    private BigDecimal amount;

    /**
     * 到账金额
     */
    private BigDecimal receivedAmount;

    /**
     * 提现用户 提现标识（0：支付宝    1：银行卡  2微信）
     */
    @NotNull(message = "提现标识不能为空！")
    private Integer identification;

    /**
     * 提现用户支付宝账号
     */
    private String alipayAccount;

    /**
     * 提现用户支付宝实名
     */
    private String alipayUserName;

    /**
     * 提现用户银行卡号
     */
    private String userBankCardNumber;

    /**
     * 状态1申请 2同意 3拒绝 4到账成功 5失败
     */
    private Integer approvalStatus;

    /**
     * 审批时间
     */
    private Date approvalTime;
    /**
     * 备注
     */
    private String remark;

    private String openId;

    private String userName;

    //查询标识  0查询待审核  1查询已审核
    private Integer  statusTag;

    private Date startTime;

    private Date endTime;


    //代理编号
    @TableField(jdbcType = JdbcType.VARCHAR)
    private String affiliatedSerialNumber;

    //代理团队
    private String affiliatedNickName;

    //会员分组
    private String memberGroupName;

    //会员编号
    private String memberGroupCode;

    //会员编号
    private Long memberGroupId;

}
